.TH std::generator::promise_type::operatornew 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::generator::promise_type::operatornew \- std::generator::promise_type::operatornew

.SH Synopsis
   void* operator new( std::size_t size )

       requires std::same_as<Allocator, void> ||                      \fB(1)\fP (since C++23)

                std::default_initializable<Allocator>;
   template< class Alloc, class... Args >

       requires std::same_as<Allocator, void> ||
                std::convertible_to<const Alloc&, Allocator>          \fB(2)\fP (since C++23)
   void* operator new( std::size_t size, std::allocator_arg_t,

                       const Alloc& alloc, const Args&... );
   template< class This, class Alloc, class... Args >

       requires std::same_as<Allocator, void> ||
                std::convertible_to<const Alloc&, Allocator>          \fB(3)\fP (since C++23)
   void* operator new( std::size_t size, const This&,
   std::allocator_arg_t,

                       const Alloc& alloc, const Args&... );

   Allocates size bytes of uninitialized storage using default or user-provided
   allocator.

   Let A be

     * Allocator, if it is not void,
     * Alloc for (2,3), or
     * std::allocator<void> otherwise.

   Let B be std::allocator_traits<A>::template rebind_alloc<U> where U is an
   unspecified type whose size and alignment are both __STDCPP_DEFAULT_NEW_ALIGNMENT__.

   Initializes an allocator b of type B with:

   1) A(),
   2,3) A(alloc).

   Uses b to allocate storage for the smallest array of U sufficient to provide storage
   for a coroutine state of size size, and unspecified additional state necessary to
   ensure that operator delete can later deallocate this memory block with an allocator
   equal to b.

   Note: std::allocator_traits<B>::pointer must be of a pointer type, otherwise the
   behavior is undefined.

.SH Parameters

   size  - the size of the storage to allocate
   alloc - a user provided allocator of type Alloc

.SH Return value

   A pointer to the allocated storage.

.SH Exceptions

   1-3) May throw.
